<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>


<title>Исчерпывающая инструкция по PHP Mailer - site_title</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="author"
	content="(c) 2001-2005, Feskov Kuzma (http://kfsite.russofile.ru)">
<meta name="keywords"
	content="phpmailer, mail, отправка почты, php, программирование, статьи, материалы, учебники, обучение">
<meta name="description"
	content="Исчерпывающая инструкция по PHP Mailer (класс для отправки почты).">
<link rel="stylesheet" type="text/css" href="phpmailer_files/view.css">
</head>
<body>
<script language="JavaScript">function res_popup(id, width, height){window.open("http://php.russofile.ru/ru/view/"+id+"/", "_blank", "toolbar=0, location=0, scrollbars=1, resizable=1, directories=0, status=0, menubar=0, width="+width+", height="+height+", top=10, left=10");}</script>
<table width="100%">
	<tbody>
		<tr>
			<td>
			<h1><em>Kuzma's PHP Look</em></h1>
			<em>Home page:</em> <a href="http://kuzma.russofile.ru/"
				target="_blank">http://kuzma.russofile.ru</a></td>
			<td>
			<center><script type="text/javascript"><!--
            google_ad_client = "pub-7692796153903343";
            google_ad_width = 728;
            google_ad_height = 90;
            google_ad_format = "728x90_as";
            google_ad_channel ="5552835500";
            google_color_border = "FDFFCA";
            google_color_bg = "FDFFCA";
            google_color_link = "0000CC";
            google_color_url = "008000";
            google_color_text = "000000";
            //--></script> <script type="text/javascript"
				src="phpmailer_files/show_ads.js">
            </script><script src="phpmailer_files/expansion_embed.js"></script><script
				src="phpmailer_files/test_domain.js"></script><script>google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);</script><ins
				style="border: medium none; margin: 0pt; padding: 0pt; display: inline-table; height: 90px; position: relative; visibility: visible; width: 728px;"><ins
				style="border: medium none; margin: 0pt; padding: 0pt; display: block; height: 90px; position: relative; visibility: visible; width: 728px;"><iframe
				allowtransparency="true" hspace="0" id="google_ads_frame1"
				marginheight="0" marginwidth="0" name="google_ads_frame"
				src="phpmailer_files/ads.htm"
				style="left: 0pt; position: absolute; top: 0pt;" vspace="0"
				scrolling="no" frameborder="0" height="90" width="728"></iframe></ins></ins></center>
			</td>
		</tr>
	</tbody>
</table>
<table class="title" border="0" cellpadding="5" cellspacing="0"
	width="100%">
	<tbody>
		<tr>
			<td valign="top"></td>
			<td valign="top" width="100%">
			<div class="navigator">
			<div class="block">
			<div class="block_content"><a
				href="http://php.russofile.ru/ru/" class="navigator">Home</a>&nbsp;<img
				src="phpmailer_files/arrow.gif">&nbsp;<a
				href="http://php.russofile.ru/ru/translate/" class="navigator">Переводные
			материалы</a>&nbsp;<img src="phpmailer_files/arrow.gif">&nbsp;<a
				href="http://php.russofile.ru/ru/translate/mail/" class="navigator">Работа
			с почтой</a>&nbsp;<img src="phpmailer_files/arrow.gif">&nbsp;<span
				class="navigator_active">PHPMailer - учебник</span></div>
			</div>
			<br>
			</div>
			<div align="justify">Оригинал: Eric Rosebrock <a
				href="http://www.phpfreaks.com/tutorials/130/0.php" target="_blank">http://www.phpfreaks.com/tutorials/130/0.php</a><br>
			Перевод: <a href="mailto:kuzma@russofile.ru">Феськов Кузьма</a> – <a
				href="http://kuzma.russofile.ru/" target="_blank">http://kuzma.russofile.ru</a>

			<h1>Исчерпывающая инструкция по PHP Mailer – Все, что вам надо
			знать</h1>

			<h2>Введение</h2>

			<p>Рассылка сообщений посредствам PHP может быть очень простой, а
			может быть очень сложной, все зависит от того, что и как вы
			собираетесь посылать.</p>
			<p>Стандартное электронное письмо – это обычный текст, что и
			используется большинством разработчиков, поэтому создание MIME
			заголовков для HTML писем может стать сложным процессом. Теперь
			трудности вам не грозят, потомучто у вас есть чудесная библиотека
			PHPMailer, которая, к тому же, бесплатна.</p>
			<p>В этом обучающем курсе мы будем подробно обсуждать особенности
			и возможности этой библиотеки.</p>

			<h2>Требования</h2>

			<p>Требования у данной библиотеки очень скромны. Вам нужен только
			PHP и возможность отсылать письма посредствам команды mail() или
			через SMTP соединение.</p>
			<p>Также вы должны понимать основы объектно-ориентированного
			программирования (ООП), или, по крайней мере, понимать как правильно
			применять данные ниже примеры.</p>
			<p>Не переживайте! Этот курс достаточно прост!</p>

			<h2>О PHPMailer</h2>

			<p>Это класс, обеспечивающий полную функциональность при отправке
			почтовых сообщений на PHP. Я назвал бы его самым лучшим из всех,
			которые я когда-либо использовал. Его популярность очень быстро
			росла. С момента появления, 7 декабря 2004 года, его скачали уже
			более 100 000 раз! Я надеюсь, что вы захотите увеличить это число
			после прочтения данного обучающего курса, и, что еще более важно, вы
			узнаете, как использовать те возможности по работе с почтой, о
			которых вы только мечтали.</p>

			<h2>Что может PHPMailer</h2>

			<p>На момент написания этого обучающего курса PHP Mailer умел:</p>
			<ul>
				<li>посылать письма с множественными: адресатами (TO), копиями
				(CC), BCC и REPLY-TO;</li>
				<li>избыточные SMTP серверы;</li>
				<li>многослойные/альтернативные сообщения для клиентов, которые
				не могут читать HTML письма;</li>
				<li>поддержка 8 бит, base64, бинарного режима, и пригодного для
				печати формата;</li>
				<li>Использовать все теже самые методы, что и популярный
				AspEmail активный сервер (COM);</li>
				<li>авторизация SMTP;</li>
				<li>перенос слов (word wrap);</li>
				<li>сообщения в виде HTML;</li>
				<li>библиотека проверена на множестве SMTP серверах: Sendmail,
				qmail, Postfix, Imail, Exchange, Mercury, Courier;</li>
				<li>работает на любой win32 и *nix платформе;</li>
				<li>гибкость отладки;</li>
				<li>определяемые вручную заголовки писем;</li>
				<li>совмещение нескольких сообщений и вложений;</li>
				<li>встроенная поддержка изображений.</li>
			</ul>

			<h2>Разработчики PHPMailer</h2>

			<ul>
				<li>Brent R. Matzelle</li>
				<li>Patrice Fournier</li>
				<li>Chris Ryan</li>
				<li>Cem Hurturk</li>
				<li>Tom Klingenberg</li>
				<li>Jaime Bozza</li>
			</ul>
			<p>Я выражаю этим людям свою признательность, потомучто они
			столько сделали, чтобы ускорить развитие моих проектов, включая
			PHPFreaks.com!</p>

			<h2>Готовим PHPMailer для использования</h2>

			<h3>Скачать и распаковать</h3>

			<p>Первое, что вы должны сделать, это, конечно же, скачать
			PHPMailer! Вы можете найти его здесь: <a
				href="http://phpmailer.sourceforge.net/" target="_blank">http://phpmailer.sourceforge.net/</a>.
			После того, как вы скачаете файл, распакуйте его в каталог. В нашем
			учебнике мы предположим, что ваш сайт находится здесь: <strong>/home/mywebsite/public_html/</strong>.
			Теперь необходимо создать несколько директорий, чтобы упорядочить
			структуру проекта. Я обычно помещаю библиотеки в каталог '<strong>lib</strong>',
			а затем их название. Таким образом, извлекаем PHPMailer сюда: <strong>/home/mywebsite/public_html/lib/phpmailer</strong>.
			Вот пример из командной строки:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>/home/mywebsite/public_html/lib
/home/mywebsite/public_html/lib/phpmailer
/home/mywebsite/public_html/lib/phpmailer/docs
/home/mywebsite/public_html/lib/phpmailer/docs/extending.html
/home/mywebsite/public_html/lib/phpmailer/docs/faq.html
/home/mywebsite/public_html/lib/phpmailer/docs/timeoutfix.diff
/home/mywebsite/public_html/lib/phpmailer/language
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-br.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-cz.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-de.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-en.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-es.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-fr.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-it.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-nl.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-no.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-se.php
/home/mywebsite/public_html/lib/phpmailer/language/phpmailer.lang-tr.php
/home/mywebsite/public_html/lib/phpmailer/phpdoc
/home/mywebsite/public_html/lib/phpmailer/phpdoc/allclasses-frame.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/deprecated-list.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/help-doc.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/index-all.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/index.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/overview-tree.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/packages.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/phpmailer.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/serialized-form.html
/home/mywebsite/public_html/lib/phpmailer/phpdoc/stylesheet.css
/home/mywebsite/public_html/lib/phpmailer/test
/home/mywebsite/public_html/lib/phpmailer/test/phpmailer_test.php
/home/mywebsite/public_html/lib/phpmailer/test/phpunit.php
/home/mywebsite/public_html/lib/phpmailer/test/rocks.png
/home/mywebsite/public_html/lib/phpmailer/ChangeLog.txt
/home/mywebsite/public_html/lib/phpmailer/class.phpmailer.php
/home/mywebsite/public_html/lib/phpmailer/class.smtp.php
/home/mywebsite/public_html/lib/phpmailer/LICENSE
/home/mywebsite/public_html/lib/phpmailer/README
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Теперь, когда все файлы на своих местах, давайте создадим файл
			конфигурации нашего проекта.</p>

			<h3>Создание и использование файла конфигурации</h3>

			<p>Одна из главных вещей, которую я люблю делать перед созданием
			сайта – это написание файла конфигурации, он будет содержать
			настройки к которым я, возможно, буду обращаться много раз. И так, я
			создаю файл с название config.php в <strong>/home/mywebsite/public_html/config.php</strong>.
			Создаем внем массив с названием <strong>$site</strong> с моими
			ключами и значениями, которые я буду использовать в дальнейшем. В
			этом руководстве я опишу переменные, которые мы будем использовать в
			классе PHPMailer. Вот пример моего файла <strong>config.php</strong>:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// Настройки для MY site

// Настройки Email
$site['from_name'] = 'мое имя'; // from (от) имя
$site['from_email'] = 'email@mywebsite.com'; // from (от) email адрес
// На всякий случай указываем настройки
// для дополнительного (внешнего) SMTP сервера.
$site['smtp_mode'] = 'disabled'; // enabled or disabled (включен или выключен)
$site['smtp_host'] = null;
$site['smtp_port'] = null;
$site['smtp_username'] = null;
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Этот пример очень прост, чтобы объяснять его. Далее мы
			продолжим свою работу и будем брать эти настройки по мере надобности.</p>

			<h3>Создаем класс, расширяющий PHPMailer</h3>

			<p>Сразу подчеркну, что вы должны создать класс расширения, это
			позволит упростить вам жизнь, далее я покажу как.</p>
			<p>Класс расширения вызовет класс PHPMailer() и установит
			начальные значения, такие, как Email адрес от имени которого вы
			будете посылать письма, настройки почтового сервера, и так далее.</p>
			<p>Каждый из этих параметров берется по умолчанию из файла <strong>config.php</strong>,
			но вы также можете переписать их при вызове нашего класса расширения.
			Таким образом, если вы не переопределите какой-либо из параметров в
			классе расширения, то он будет взят поумолчанию из файла <strong>config.php</strong>,
			и вам не надо каждый раз переопределять эти параметры. В этом и
			красота данного подхода!</p>
			<p>Взгляните на наш класс расширения:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>require_once($_SERVER['DOCUMENT_ROOT'].'/lib/phpmailer/class.phpmailer.php');

class FreakMailer extends PHPMailer
{
    var $priority = 3;
    var $to_name;
    var $to_email;
    var $From = null;
    var $FromName = null;
    var $Sender = null;
  
    function FreakMailer()
    {
      global $site;
      
      // Берем из файла config.php массив $site
      
      if($site['smtp_mode'] == 'enabled')
      {
        $this-&gt;Host = $site['smtp_host'];
        $this-&gt;Port = $site['smtp_port'];
        if($site['smtp_username'] != '')
        {
         $this-&gt;SMTPAuth  = true;
         $this-&gt;Username  = $site['smtp_username'];
         $this-&gt;Password  =  $site['smtp_password'];
        }
        $this-&gt;Mailer = "smtp";
      }
      if(!$this-&gt;From)
      {
        $this-&gt;From = $site['from_email'];
      }
      if(!$this-&gt;FromName)
      {
        $this-&gt; FromName = $site['from_name'];
      }
      if(!$this-&gt;Sender)
      {
        $this-&gt;Sender = $site['from_email'];
      }
      $this-&gt;Priority = $this-&gt;priority;
    }
}
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Далее мы рассмотрим этот код.</p>

			<h3>Разберем класс FreakMailer</h3>

			<p>Наш класс, показанный выше, очень прост. И вам необходимо
			обладать только базовыми навыками ООП, чтобы использовать его.
			Давайте разберемся.</p>
			<p>Сначала нам необходимо подключить класс PHPMailer (файл <strong>class.phpmailer.php</strong>
			в директории <strong>lib</strong>). Это позволяет нам расширить класс
			PHPMailer, потому что делает объект доступным. Вы могли бы подключить
			его и в другом месте, но здесь это наиболее эффективно.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>require_once($_SERVER['DOCUMENT_ROOT'].'/lib/phpmailer/class.phpmailer.php');
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Структура управления классом</h3>
			<p>Далее, мы определяем структуру управления классом и даем ему
			имя при расширении класса PHPMailer.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>class FreakMailer extends PHPMailer
{ 
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Переменные класса</h3>

			<p>Идем дальше. Теперь мы определяем внутренние переменные.
			Большинство из них установлены поумолчанию в <em>NULL</em>, чтобы
			позже мы могли их переопределить, если есть необходимость заменить
			значения, установленные в <strong>config.php</strong>.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>var $priority = 3;
var $to_name;
var $to_email;
var $From = null;
var $FromName = null;
var $Sender = null; 
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Давайте рассмотрим эти переменные:</p>
			<ul>
				<li><strong>$priority</strong> – это устанавливает приоритет
				почты поумолчанию: 1 – высоко, 3 – нормально, 5 – низко.</li>
				<li><strong>$to_name</strong> – Имя человека, которому вы
				посылаете сообщение.</li>
				<li><strong>$to_email</strong> – адрес этого человека.</li>
				<li><strong>$From</strong> – адрес, с которого вы хотите
				послать письмо.</li>
				<li><strong>$FromName</strong> – имя отправителя.</li>
			</ul>
			<p>После определения переменных, мы с вами можем обсудить функцию
			<strong>FreakMailer()</strong>.</p>

			<h3>Функция FreakMailer()</h3>

			<p>Эта функция, в основном, настраивает начальные значения для
			класса PHPMailer, чтобы посылать почту.</p>
			<p>Сначала мы вызываем массив $site из файла <strong>config.php</strong>,
			чтобы иметь возможность использовать его в пределах данной функции и
			класса. Чтобы сделать это есть два способа: передать массив при
			вызове класса или сделать массив глобальным. Последний способ самый
			легкий и он работает, поэтому его и используем!</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre> function FreakMailer()
    {
      global $site; // Берем из файла config.php массив $site
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Все дальнейшие действия – это, в основном, определение
			значений переменным класса PHPMailer. Если внутренняя переменная (<strong>$this-&gt;setting</strong>)
			не определена, мы берем значения из файла <strong>config.php</strong>.
			Я уже упоминал о том, что вы можете переопределить значения из <strong>config.php</strong>,
			здесь мы проверяем это.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>if($site['smtp_mode'] == 'enabled')
      {
        $this-&gt;Host     = $site['smtp_host'];
        $this-&gt;Port     = $site['smtp_port'];
        if($site['smtp_username'])
        {
         $this-&gt;SMTPAuth  = true;
         $this-&gt;Username  = $site['smtp_username'];
         $this-&gt;Password  = $site['smtp_password'];
        }
        $this-&gt;Mailer   = "smtp";
      }
      
      if(!$this-&gt;From)
      {
        $this-&gt;From     = $site['from_email'];
      }
      if(!$this-&gt;FromName)
      {
        $this-&gt;FromName = $site['from_name'];
      }
      if(!$this-&gt;Sender)
      {
        $this-&gt;Sender = $site['from_email'];
      }
      $this-&gt;Priority = $this-&gt;priority;
    } 
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Самое главное, что вы должны понять, это то, что все
			возможности PHPMailer все еще присутствуют и могут использоваться,
			несмотря на то, что мы его расширили. Единственное, что мы сделали
			здесь – это создали расширение, которое заботится о том, чтобы нам не
			надо было каждый раз вводить одни и теже данные, когда мы хотим
			послать сообщение.</p>
			<p>Теперь, когда мы достаточно имеем представление о классе
			расширения, давайте попробуем отправить почту!</p>

			<h2>Отправка электронной почты средствами PHPMailer</h2>
			<p>Предварительная работа сделана и теперь у нас есть все, чтобы
			посылать письма средствами PHPMailer.</p>

			<h3>Первоначальное испытание</h3>
			<p>Это испытание очень важно, потому что в рамках данной статьи
			мы будем постоянно возвращаться к приведенному здесь коду. Если
			данный код у вас не заработает, перечитайте этот материал сначала и
			снова попробуйте. Наш первый пример мы сохраним в файле <strong>mailtest.php</strong>,
			который положим в корень нашего проекта. Вот его содержимое:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// Читаем настройки config
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');

// Подключаем класс FreakMailer
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');

// инициализируем класс
$mailer = new FreakMailer();

// Устанавливаем тему письма
$mailer-&gt;Subject = 'Это тест';

// Задаем тело письма
$mailer-&gt;Body = 'Это тест моей почтовой системы!';

// Добавляем адрес в список получателей
$mailer-&gt;AddAddress('foo@host.com', 'Eric Rosebrock');

if(!$mailer-&gt;Send())
{
  echo 'Не могу отослать письмо!';
}
else
{
  echo 'Письмо отослано!';
}
$mailer-&gt;ClearAddresses();
$mailer-&gt;ClearAttachments();

</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Давайте разберем этот код для лучшего его понимания.</p>
			<p>Сначала мы подключаем наш конфигурационный файл, чтобы иметь
			доступ к массиву <strong>$site</strong>.</p>
			<p>Далее, подключаем класс FreakMailer.</p>
			<p>Теперь необходимо инициализировать наш класс расширения, а
			также класс PHPMailer.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// Читаем настройки config
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');

// Подключаем класс FreakMailer
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');

// инициализируем класс
$mailer = new FreakMailer();
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Теперь PHPMailer готов и мы идем дальше.</p>
			<p>Задаем тему письма и его содержание.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// Устанавливаем тему письма
$mailer-&gt;Subject = 'Это тест';

// Задаем тело письма
$mailer-&gt;Body = 'Это тест моей почтовой системы!';
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Если вы используете в качестве письма обычный текст, то
			необходимо разделять строки <em> </em> или <em> </em>. И вы должны
			использовать двойные кавычки при определении переменной <strong>$mailer-&gt;Body</strong>.
			Если вы используете одинарные кавычки, то перенос текста с одной
			строки на другую возможен с помощью клавиши <enter>.</enter></p>
			<p>Теперь необходимо добавить адрес получателя.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// Добавляем адрес в список получателей
$mailer-&gt;AddAddress('foo@host.com', 'Eric Rosebrock');
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Далее, посылаем сообщение и обрабатываем ошибки, если
			возникли.</p>
			<p>В случае ошибки – вы увидите сообщение «Не могу отослать
			письмо!», в противном случае - «Письмо отослано!».</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>if(!$mailer-&gt;Send())
{
  echo 'Не могу отослать письмо!';
}
else
{
  echo 'Письмо отослано!';
}
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Далее, мы очищаем список адресатов и список вложений.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;ClearAddresses();
$mailer-&gt;ClearAttachments();
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Если вам только что пришло сообщение, которое вы отослали с
			помощью PHPMailer, – поздравляю!</p>

			<h3>Основные проблемы</h3>
			<p>Вот список некоторых (типичных) проблем, которые могут
			возникнуть у вас при отправлении почты при помощи PHPMailer
			(вероятнее всего, эти проблемы у вас возникли бы и при обычном
			отправлении писем):</p>
			<ul>
				<li>на вашей машине не установлено или не запущено ни одного
				SMTP сервера;</li>
				<li>неправильные настройки внутри PHP скрипта, перечитайте
				обучающий курс еще раз;</li>
				<li>Сервер Apache не разрешает релей через SMTP сервер на
				локальной машине (типичный случай);</li>
				<li>вы не правильно определили получателя письма.</li>
			</ul>

			<p>Но, если у вас все заработало, давайте перейдем к отправке
			писем с определенными особенностями.</p>

			<h2>Использование дополнительных возможностей PHPMailer</h2>
			<p>Если вы уже здесь, но не читали при этом предыдущего материала
			– вернитесь и прочитайте, потому что здесь мы будем заниматься
			расширением базового примера.</p>
			<p>PHPMailer имеет множество особенностей, например, добавление
			вложений, рассылка по списку адресатов и др. В этой части нашего
			материала мы с вами посмотрим, как это выглядит на практике.</p>

			<h2>Обработка адресов электронной почты</h2>
			<p>PHPMailer поддерживает много особенностей Адреса электронной
			почты, типа «Для» TO, «от» FROM и списков получателей, точная копия
			CC и Слепая точная копия BCC, Reply-TO и др. Давайте посмотрим, как
			использовать эти особенности.</p>
			<p>Помните, что мы опираемся на основной пример, приведенный
			выше.</p>

			<h3>Добавление адреса отправителя (FROM)</h3>
			<p>В нашем основном примере адрес отправителя уже задан
			посредствам config.php и класса расширения, но вы в любой момент
			можете его переопределить. Например:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;FromName = 'Ваше Имя';
$mailer-&gt;From = 'You@yourdomain.com';
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Если не определить FromName, то большинство почтовых клиентов
			в качестве имени подставят емаил.</p>

			<h3>Добавление адреса для ответа (Reply-To)</h3>
			<p>Поумолчанию, адрес для ответа совпадает с адресом, с которого
			вы отослали письмо (FROM). Однако вы можете определить разные адреса
			для ответа на ваше письмо:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;AddReplyTo('billing@yourdomain.com', 'Департаменту оплаты');
</pre></td>
					</tr>
				</tbody>
			</table>

			<p><strong>ЗАМЕЧАНИЕ:</strong></p>
			<p>Вы можете задать несколько адресов для ответа. Для этого
			необходимо продублировать приведенный выше код столько раз, сколько
			вы имеете адресов (не забудьте в примере менять адреса на нужные
			вам).</p>

			<h3>Добавление нескольких получателей</h3>
			<p>Этот метод позволяет вам добавить нескольких получателей для
			письма. Я не рекомендую этот способ для анонимных листов рассылки.
			Смотрите позже пример для списка рассылки.</p>
			<p>Для добавления нескольких получателей вы должны повторить
			вызов функции <strong>AddAddress</strong> столько раз, скольким людям
			вы хотите отослать ваше сообщение. Далее, пример для трех адресатов.
			В данном примере адрес является обязательным, а имя адресата
			опциональным и может быть опущено.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;AddAddress('recipient1@domain.com', 'Первый человек');
$mailer-&gt;AddAddress('recipient2@domain.com', 'Второй человек');
$mailer-&gt;AddAddress('recipient3@domain.com', 'Третий человек');
</pre></td>
					</tr>
				</tbody>
			</table>

			<p><strong>ЗАМЕЧАНИЕ:</strong></p>
			<p>Не рекомендуем пользоваться этим методом для рассылки по
			списку адресатов! Каждый получатель вашего письма будет видеть ВЕСЬ
			список получателей, а, затем, сможет использовать его по своему
			усмотрению. Позже мы расскажем как правильно отсылать письма по
			списку адресатов.</p>

			<h3>Добавить получателей точной копии (CC)</h3>
			<p>Вы можете добавить получателей точной копии точно также, как и
			предыдущих примерах, используя функцию <strong>AddCC</strong>.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;AddCC('recipient1@domain.com', 'Первый человек');

// Если вам надо добавить более чем одного – просто повторяйте эту команду!
$mailer-&gt;AddCC('recipient2@domain.com', 'Второй человек');
$mailer-&gt;AddCC('recipient3@domain.com', 'Третий человек'); 
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Добавление получателей слепой точной копии (BCC)</h3>
			<p>Невидимых получателей или BCC можно добавить используя
			следущую функцию:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;AddBCC('recipient1@domain.com', 'Первый человек');

// Если вам надо добавить более чем одного BCC, просто продолжайте!
$mailer-&gt;AddBCC('recipient2@domain.com', 'Второй человек');
$mailer-&gt;AddBCC('recipient3@domain.com', 'Третий человек');
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Требование подтверждения прочтения</h3>
			<p>Если вы хотите запросить у человека, читающего ваше письмо,
			подтверждение о прочтении, подайте следующую команду:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;ConfirmReadingTo = 'you@youdomain.com';
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Теперь, когда мы рассмотрели все адреса для отправки почты,
			давайте посмотрим, как посылать письма ввиде HTML!</p>

			<h2>Отправление писем ввиде HTML при помощи PHP и PHPMailer</h2>
			<p>Формирование HTML письма – это одна из самых сложных задач при
			отправке почты средствами PHP. Настройка MIME заголовков и построение
			HTML – нелегкая задача и требует дополнительных знаний и
			исследований. Однако, PHPMailer сделает вашу жизнь проще, далее, мы
			покажем как это реализуется.</p>

			<h3>Важное замечание относительно почты ввиде HTML</h3>
			<p>Прежде чем мы приступим к отправке таких писем, я хотел бы,
			чтобы вы поняли, что важно знать о том, каким образом должны
			подключаться изображения и стили CSS, и т.д. Простое правило состоит
			в том, чтобы хранить эти файлы на сервере, а в письме давать полные
			ссылки на них. Если вы сходите сума и добавляете все эти файлы к
			письму, то готовьтесь к головной боли. Например, тело моего письма
			выглядит примерно так:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;My HTML Email&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;img src="http://www.phpfreaks.com/images/phpfreaks_logo.jpg" alt="PHP Freaks" /&gt;<br>
&lt;h2&gt;PHP Freaks Rules!&lt;/h2&gt;
&lt;p&gt;We invite you to visit &lt;a href="http://www.phpfreaks.com" title="PHP Freaks"&gt;PHP Freaks.com&lt;/a&gt;
for a loving community of PHP Developers who enjoy helping each other learn the language!&lt;/p&gt;
&lt;p&gt;Sincerely,&lt;br /&gt;
PHP Freaks Staff&lt;/p&gt;
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Как вы видете, я сделал каждый URL полным, а не сокращенным
			относительно моего документа. Если этого не сделать, то ваши
			изображения не будут грузиться и пользователь их не увидит!</p>
			<p>Идем дальше, теперь нам необходимо отослать наше письмо. Для
			этого нам необходимо определить тело нашего письма и задать <strong>isHTML</strong>
			настройки. Следующий пример расширяет первоначальный базовый пример.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$htmlBody = '
&lt;head&gt;
&lt;title&gt;My HTML Email&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;img src="http://www.phpfreaks.com/images/phpfreaks_logo.jpg" alt="PHP Freaks" /&gt;<br>
&lt;h2&gt;PHP Freaks Rules!&lt;/h2&gt;
&lt;p&gt;We invite you to visit &lt;a href="http://www.phpfreaks.com" title="PHP Freaks"&gt;PHP Freaks.com&lt;/a&gt;
for a loving community of PHP Developers who enjoy helping each other learn the language!&lt;/p&gt;

&lt;p&gt;Sincerely,&lt;br /&gt;
PHP Freaks Staff&lt;/p&gt;';

$mailer-&gt;Body = $htmlBody;
$mailer-&gt;isHTML(true);

// Отправляем сообщение
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Дополнительные «тела» письма</h3>
			<p>Никогда не полагайтесь только на HTML при отправке писем, если
			ваше сообщение очень важное. Вы должны позаботиться о получателе и
			помимо HTML письма прикрепить и только text-only (только текст)
			версию сообщения, поскольку некоторые почтовые клиенты не умеют
			показывать HTML письма. Мы можем достигнуть такого эффекта добавляя
			дополнительные тела письма функцией <strong>AltBody</strong> класса
			PHPMailer. Давайте добавим текстовую версию вашего сообщения. Как
			только мы добавляем несколько тел письма – PHPMailer автоматически
			сформирует многослойное письмо.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// настраиваем класс почты

$htmlBody = 'My HTML Body....';
$textBody = 'My text-only body....';

$mailer-&gt;Body = $htmlBody;
$mailer-&gt;isHTML(true);
$mailer-&gt;AltBody = $textBody;

// Отправляем письмо
</pre></td>
					</tr>
				</tbody>
			</table>

			<h2>Прикрепление файлов к письму</h2>
			<p>Прикрепить файл к письму – это чень легкая задача, если вы
			используете PHPMailer. Просто добавьте их письму точно также, как вы
			добавляли адреса. Вот пример:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// настройка класса для отправки почты
$mailer-&gt;AddAttachment('/home/mywebsite/public_html/file.zip', 'file.zip');
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Функция AddAttachment имеет 4 аргумента:</p>
			<ul>
				<li>путь до файла;</li>
				<li>имя файла;</li>
				<li>кодирование;</li>
				<li>тип заголовка.</li>
			</ul>
			<p>Путь до файла, естественно, полный путь до файла на диске, имя
			файла – название файла, который вы хотите прикрепить, кодирование –
			поумолчанию base64, тип заголовка – это тип заголовка, который вы
			хотите послать – поумолчанию – <strong>Application/octet-stream</strong>.</p>
			<p>Как видите, все очень легко! Давайте перейдем с вами к
			использованию SMTP.</p>

			<h2>Использование внешнего(их) SMTP для работы с почтой
			средствами PHP</h2>
			<p>Сначала давайте обсудим использование внешнего SMTP вместо
			локального. В базовом примере мы с вами сделали <strong>config.php</strong>,
			где задали несколько вариантов для SMTP сервера. Если вы хотите
			указать больше SMTP серверов – сделать это можно также расширив <strong>config.php</strong>,
			установив <strong>$site['smtp_enabled'] = 'enabled';</strong>
			(включено).</p>
			<p>В <strong>$site ['smtp_host']</strong> вы можете расширить
			список SMTP серверов, разделяя их точкой с запятой. Например:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$site['smtp_host'] = 'server1.host.com;server2.host.com;server3.host.com';
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Как я понимаю, PHPMailer попытается послать почту через первый
			сервер, если это не удается – через второй и так далее.</p>
			<p><strong>ЗАМЕЧАНИЕ:</strong></p>
			<p>Помните, что вы всегда можете включить авторизацию через SMTP
			или поменять порт в файле <strong>config.php</strong>.</p>
			<p>Важное замечание, обращаю ваше внимание, что для отправки
			писем через SMTP необходимо использовать не стандартную функцию <strong>Send()</strong>,
			а функцию <strong>SMTPSend()</strong>. Например:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// настройки класса
// смотри базовый пример

// Не SMTP режим:
// $mailer-&gt;Send();

// SMTP режим:
$mailer-&gt;SmtpSend(); 
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Проблемы с отправкой через SMTP</h3>
			<p>Есть много вариантов возникновения ошибок при работе с SMTP, в
			основном, все они касаются прав доступа:</p>
			<ul>
				<li>имеет ли ваш хостинг разрешение на отправку почты через
				указанный SMTP?</li>
				<li>Возможно, перед подключением по SMTP необходимо
				подключиться по протоколу POP (сначала скачать – потом отправлять);</li>
				<li>вах хостинг требует авторизации соединения;</li>
				<li>вы уверены, что вы ввели правильные параметры пользователя
				и пароля?</li>
			</ul>
			<p>К сожалению, я не уверен, что PHPMailer поддерживает
			соединение по протоколу POP перед соединением по SMTP. Если это
			создает проблему – свяжитесь со своим администратором и попросите
			хозяина релея прописать ваш IP адрес для сервера.</p>

			<h2>Использование qmail и Sendmail</h2>
			<p>Если вы хотите обойти функцию <strong><a
				href="http://php.net/mail" target="_blank">mail()</a></strong> PHP и
			использовать бинарные программы для работы с почтой, то вам
			необходимо определить тип почтового сервера, а затем PHPMailer
			запустит указанный бинарный файл, что, возможно, немного ускорит
			операции. Пример:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>//qmail пример:
// настройте класс
$mailer-&gt;IsQmail();
$mailer-&gt;Send();

// Sendmail пример:
// настройте класс
$mailer-&gt;IsSendmail();
$mailer-&gt;Send();
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Как видите, это довольно легко! Давайте перейдем к построению
			простого списка адресатов.</p>

			<h2>Пример списка рассылки</h2>
			<p>Теперь, когда вы уже имеете достаточное представление о работе
			PHPMailer, давайте рассмотрим некоторые особенности списков рассылки.
			Выскажу несколько соображений о том, что вам может понадобиться при
			рассылке: настройка темы письма, тела письма. И, что наиболее важно,
			необходимо скрыть адреса получателей друг от друга.</p>
			<p>Следующий пример предполагает, что у вас уже есть некоторая
			база данных со списком адресов и вы знаете как соединиться с базой
			MySQL. Пока мы предположим, что вы имеете что-то следующей структуры:</p>
			<ul>
				<li>Имя</li>
				<li>Фамилия</li>
				<li>Электронный адрес</li>
				<li>Тип письма (text/html)</li>
			</ul>

			<p>Предположим, что вы имеете 50 пользователей и хотите сделать
			настраиваемую рассылку по этим адресам. Следующий пример поможет вам
			в этом:</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>// подключаем файл конфигурации
require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');

// подключаем класс FreakMailer
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');

// Настраиваем тело письма
$textBody = "Dear {MEMBER_NAME},

Check out PHP Freaks: http://www.phpfreaks.com

Sincerely,
Admin";
$htmlBody = "Dear {MEMBER_NAME},&lt;br /&gt;&lt;br /&gt;
Check out PHP Freaks: http://www.phpfreaks.com&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;Admin";

// инициализируем класс
$mailer = new FreakMailer();

// получаем список адресов пользователей
$sql = mysql_query("SELECT FirstName,LastName,EmailAddress,MailType FROM users WHERE 1");

while($row = mysql_fetch_object($sql))
{
  // Отправляем письма в цикле
  $member_name = $row-&gt;FirstName;
  if(!empty($row-&gt;LastName))
  {
    $member_name .= ' '.$row-&gt;LastName;
  }
  
  if($row-&gt;MailType == 'html')
  {
    $mailer-&gt;Body = str_replace('{MEMBER_NAME}', $member_name, $htmlBody);
    $mailer-&gt;IsHTML(true);
    $mailer-&gt;AltBody = str_replace('{MEMBER_NAME}', $member_name, $textBody);
  }
  else
  {
    $mailer-&gt;Body = str_replace('{MEMBER_NAME}', $member_name, $textBody);
    $mailer-&gt;isHTML(false);
  }
  
  $mailer-&gt;AddAddress($row-&gt;EmailAddress, $member_name);
  
  $mailer-&gt;Send();
  $mailer-&gt;ClearAddresses();
  $mailer-&gt;ClearAttachments();
  $mailer-&gt;IsHTML(false);
  echo "Письмо отправлено. Пользователь: $member_name<br>";
}
</pre></td>
					</tr>
				</tbody>
			</table>

			<h3>Разбор кода списка рассылки</h3>
			<p>Первая часть такая же, как и в нашем первом примере – мы
			подключаем необходимые файлы.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>require_once($_SERVER['DOCUMENT_ROOT'].'/config.php');
require_once($_SERVER['DOCUMENT_ROOT'].'/lib/MailClass.inc');
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Далее, мы определяем тело нашего письма. Вы можете также
			читать его из файла, но мы, для простоты, держим его внутри этого
			скрипта.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$textBody = "Dear {MEMBER_NAME},

Check out PHP Freaks: http://www.phpfreaks.com

Sincerely,
Admin";
$htmlBody = "Dear {MEMBER_NAME},&lt;br /&gt;&lt;br /&gt;
Check out PHP Freaks: http://www.phpfreaks.com&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;Admin"; 
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Обратите внимание на условный тег <strong>{MEMBER_NAME}</strong>.
			Позже, когда мы будем выполнять действия в цикле, командой <strong><a
				href="http://php.net/str_replace" target="_blank">str_replace()</a></strong>
			мы заменим этот тег на имя пользователя из базы данных.</p>
			<p>Далее, мы инициализируем класс для работы с почтой.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer = new FreakMailer();
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Далее, мы получаем данные об адресатах из базы данных. И
			организуем цикл, в котором получаем последовательно каждый ряд в
			объект.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$sql = mysql_query("SELECT FirstName,LastName,EmailAddress,MailType FROM users WHERE 1");

while($row = mysql_fetch_object($sql))
{
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Теперь мы дошли до места, где происходит непосредственная
			отсылка почты. Черезвычайно важно разобраться в том, что мы здесь
			делам. Первая часть кода в основном занимается формированием
			переменной <strong>$member_name</strong>, которая будет содержать все
			данные текущего пользователя.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$member_name = $row-&gt;FirstName;
  if(!empty($row-&gt;LastName))
  {
    $member_name .= ' '.$row-&gt;LastName;
  }
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Следующая часть кода определяет предпочтения пользователя –
			HTML или plain-text. Если пользователь предпочитает HTML, то мы
			пошлем ему письмо ввиде HTML с включенным телом текстового письма. В
			противном случае – пошлем только текстовый вариант.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>if($row-&gt;MailType == 'html')
  {
    $mailer-&gt;Body = str_replace('{MEMBER_NAME}', $member_name, $htmlBody);
    $mailer-&gt;IsHTML(true);
    $mailer-&gt;AltBody = str_replace('{MEMBER_NAME}', $member_name, $textBody);
  }
  else
  {
    $mailer-&gt;Body = str_replace('{MEMBER_NAME}', $member_name, $textBody);
    $mailer-&gt;isHTML(false);
  }
</pre></td>
					</tr>
				</tbody>
			</table>

			<p>Внимательно проанализируйте текст выше, пока не достигните
			полного понимания. Вся необходимая информация для этого была в
			предыдущих частях нашего материала.</p>
			<p>Наконец, мы отсылаем письмо и очищаем адреса в объекте $mailer
			от любых вложений.</p>

			<table cellpadding="5">
				<tbody>
					<tr>
						<td bgcolor="lightgrey"><pre>$mailer-&gt;AddAddress($row-&gt;EmailAddress, $member_name);
$mailer-&gt;Send();
$mailer-&gt;ClearAddresses();
$mailer-&gt;ClearAttahements();
$mailer-&gt;IsHTML(false);
echo "Mail sent to: $member_name<br>";
</pre></td>
					</tr>
				</tbody>
			</table>

			<p><strong>ЗАМЕЧАНИЕ:</strong></p>
			<p>Удостоверьтесь, что вы используете функции <strong>$mailer-&gt;ClearAddresses()</strong>
			и <strong>$mailer-&gt;ClearAttahements()</strong>, иначе адреса
			пользователей будут добавляться в конец списка.</p>

			<h2>Подведем итог</h2>
			<p>Этот обучающий курс должен дать вам хороший толчек в том,
			чтобы сделать свою жизнь проще при работе с почтой. И все это –
			благодаря превосходной библиотеке PHPMailer. Теперь вы можете
			посылать почту незадумываясь о заголовках и прочих трудностях.</p>
			<p>Если вы настроите данный класс правильно, то в последующем,
			при создании других сайтов, вам не надо будет тратить свое время.</p>
			<p>Я надеюсь, что вы найдете время посетить сайт класса PHPMailer
			и почитать документацию к нему и FAQ. Очень важно понять, как устроен
			класс и ознакомиться со взглядом разработчиков на него. К тому же, на
			сайте есть другая большая обучающая статья и некоторые примеры.</p>
			<p>Удачи!</p>
			<p>-phpfreak</p>
			</div>
			</td>
		</tr>
	</tbody>
</table>
<center><!--LiveInternet counter--><script
	language="JavaScript"><!--
document.write('<a href="http://www.liveinternet.ru/click" '+
'target=_blank><img src="http://counter.yadro.ru/hit?t15.6;r'+
escape(document.referrer)+((typeof(screen)=='undefined')?'':
';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+
';'+Math.random()+
'" alt="liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодн\я" '+
'border=0 width=88 height=31></a>')//--></script><a
	href="http://www.liveinternet.ru/click" target="_blank"><img
	src="phpmailer_files/hit.gif"
	alt="liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня"
	border="0" height="31" width="88"></a><!--/LiveInternet--> <a
	href="http://www.yandex.ru/cy?base=0&amp;host=php.russofile.ru"> <img
	src="phpmailer_files/cycounter.gif" alt="Яндекс цитирования" border="0"
	height="31" width="88"></a></center>
</body>
<div FirebugVersion="1.4.5" style="display: none;" id="_firebugConsole"></div>
</html>